import pymysql
from flask import Flask, render_template, request
import datetime

app = Flask(__name__)  # 这是两条短线


# 路由解析，通过用户访问的路径，匹配相应的函数
@app.route('/')
def index():
    return render_template("index.html")


@app.route('/index')
def home():
    # return render_template("index.html")
    return index()


@app.route('/movie')
def movie():
    datalist = []
    # 创建连接
    con = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test', charset='utf8')
    # 创建游标对象
    cur = con.cursor()
    sql = "select * from movie250"
    cur.execute(sql)  # 只能分成两行写，才能得到列表类型的结果
    data = cur.fetchall()  # fetchall()方法得到列表类型结果
    for item in data:
        datalist.append(item)  # 用datalist来储存data数据，因为当游标和数据库连接关闭时，data的中的数据也会被清除
    cur.close()
    con.close()
    return render_template("movie.html", movies=datalist)


@app.route('/score')
def score():
    scores = []  # 评分
    counts = []  # 每个评分统计出的电影数量
    # 创建连接
    con = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test', charset='utf8')
    # 创建游标对象
    cur = con.cursor()
    sql = "select score,count(score) from movie250 GROUP BY score"
    cur.execute(sql)  # 只能分成两行写，才能得到列表类型的结果
    data = cur.fetchall()  # fetchall()方法得到列表类型结果
    for item in data:
        scores.append(int(item[0]))  # 这里不转换为int型，就没有数据显示，原数据为：Decimal('9.7')样式
        counts.append(item[1])
    cur.close()
    con.close()
    return render_template("score.html", score=scores, counts=counts)


@app.route('/word')
def word():
    return render_template("word.html")


@app.route('/team')
def team():
    return render_template("team.html")


if __name__ == '__main__':
    app.run(debug=True)  # 加上‘debug=True’后可以实现边编码边刷新页面的效果
